package com.ushine.web.base.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ushine.web.base.model.system.DataPermissionDO;

import java.util.List;
import java.util.Set;

/**
 * @Author: yls
 * @Date: 2022/02/15 23:11
 * @Description: 数据权限
 * @Version 1.0
 */
public interface IDataPermissionService extends IService<DataPermissionDO> {

    /**
     * 功能描述:
     * 〈 插入数据权限 〉
     *
     * @param dataPermission 数据权限实体
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/15 23:12
     */
    Boolean insertDataPermission(DataPermissionDO dataPermission);

    /**
     * 功能描述:
     * 〈 更新数据权限 〉
     *
     * @param dataPermission 数据权限实体
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/15 23:14
     */
    Boolean updateDataPermission(DataPermissionDO dataPermission);

    /**
     * 功能描述:
     * 〈 根据【id】删除数据权限 〉
     *
     * @param id 数据权限 id
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/15 23:16
     */
    Boolean deleteDataPermissionById(Long id);


    /**
     * 功能描述:
     * 〈 查询全部数据权限 〉
     *
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/02/15 23:19
     */
    List<DataPermissionDO> listAllDataPermissions();

    /**
     * 功能描述:
     * 〈 根据id集合获取数据权限 〉
     *
     * @param roleIds 角色id集合
     * @return : java.util.List<com.ushine.web.base.model.system.DataPermissionDO>
     * @author : yls
     * @date : 2022/2/17 10:39
     */
    List<DataPermissionDO> listDataPermissionsByRoleIds(Set<Long> roleIds);

}
